﻿using System;
using System.Collections.Generic;
using System.Text;
using System.ComponentModel;
using Sinacor.Infra.Service.Validation;
using Sinacor.Infra.Service.Common;
using Sinacor.Infra.Common.Exceptions;
using Sinacor.Infra.Service.ExceptionHandling;
using Sinacor.Infra.Service.Validation.BusinessRules;
using Sinacor.Infra.Common.Validation;

namespace Sinacor.Servico.Bovespa.Corretagem.BusinessLogic.BusinessRuleValidation
{
    /// <summary>
    /// Validação de negócios
    /// </summary>
    public class DuplicidadeFaixaComissao : BaseBusinessRuleValidation<BusinessEntity.FaixaComissao>, IBusinessRuleValidation
    {

        #region Métodos

        /// <summary>
        /// Captura os erros
        /// </summary>
        /// <returns>Retorno uma lista de erros</returns>
        public List<ValidationError> GetErrors()
        {
            return base.ErrorsList;
        }

        /// <summary>
        /// Validação
        /// </summary>
        public void Validate()
        {
            BusinessEntity.Parameter.FiltroFaixaComissaoChave faixaComissaoChave = new BusinessEntity.Parameter.FiltroFaixaComissaoChave
            {
                NumeroFaixa = (base.EntityToValidate.NumeroFaixa.HasValue ? base.EntityToValidate.NumeroFaixa.Value : 0)
            };

            BusinessEntity.FaixaComissao faixaComissao = new ResourceAccess.FaixaComissao().ObterFaixaComissao(faixaComissaoChave);

            if (faixaComissao != null)
            {
                base.AddValidationError(109391);
            }
        }

        #endregion
    }
}